Class FeldPruefer

java.lang.Object
de.aoksystems.da.utils.FeldPruefer

public class FeldPruefer extends Object
Hilfsklasse mit wiederkehrenden fachlichen Prüfungen. Die Klasse implementiert eine Anzahl statischer Methoden mit wiederkehrenden Prüfaufgaben. VNr Stand 1.0 21.02.2011 Ersterstellung für TA-Version 07.00 1.1 29.04.2015 isValidBBNR Prüfung auf erlaubte Bereiche eingebaut 1.2 18.05.2017 isDate60MonateAbweichend eingebaut 1.3 16.08.2017 isValidGesAbsnr eingebaut 1.4 30.06.2021 isDateLessThan150YearsOld hinzugefuegt 2.0 15.08.2025 einige Funktionen Deprecated erklaert
Version:
2.0
Author:
Jens Troeger (AOK-Systems - Datenaustausch)
  • Field Details

    • ITVSNR

      public static final String[] ITVSNR
      Interims-RV-Nummernbereiche
    • BEVSNR

      public static final String[] BEVSNR
      Erlaubte RV-Nummernbereiche
  • Method Details

    • isValidDate

      public static boolean isValidDate(String arg)
      Prüft, ob das Argument ein gültiges Datum YYYYMMDD darstellt. Die Länge wird ebenfalls überprüft.
      Parameters:
      arg - der zu prüfende String
      Returns:
      Prüfergebnis
    • isValidDateX

      public static boolean isValidDateX(String arg)
      Prüft die Gültigkeit des Datums
      Parameters:
      arg - komplettes Datum JJJJ-MM-TT - Format
      Returns:
      Prüfergebniss
    • isValidDateDDMMYYYY

      public static boolean isValidDateDDMMYYYY(String arg)
      Prüft, ob das Argument ein gültiges Datum DDMMYYYY darstellt. Die Länge wird ebenfalls überprüft.
      Parameters:
      arg - der zu prüfende String
      Returns:
      Prüfergebnis
    • isValidDate0000

      public static boolean isValidDate0000(String arg)
      Prüft, ob das Argument ein gültiges Datum YYYYMMDD darstellt. DD kann 00 und MMDD kann 0000 sein. Die Länge wird ebenfalls überprüft.
      Parameters:
      arg - der zu prüfende String
      Returns:
      Prüfergebnis
    • isDateInPast

      public static boolean isDateInPast(String arg)
      Prüft, ob das Argument in der Vergangenheit bzgl. des Maschinendatums liegt.
      Parameters:
      arg - der zu prüfende String
      Returns:
      Prüfergebnis
    • isDateBevorX

      public static boolean isDateBevorX(String arg1, String arg2)
      Prüft, ob das 1.ste Argument vor das 2.te Argument liegt
      Parameters:
      arg1 - der zu prüfende String
      arg2 - das Referenzdatum
      Returns:
      Prüfergebnis
    • isDateInFuture

      public static boolean isDateInFuture(String arg)
      Prüft, ob das Argument in der Zukunft bzgl. des Maschinendatums liegt.
      Parameters:
      arg - der zu prüfende String
      Returns:
      Prüfergebnis
    • isDateInFutureX

      public static boolean isDateInFutureX(String arg)
      Prüft, ob das Argument (XML-Format) in der Zukunft bzgl. des Maschinendatums liegt.
      Parameters:
      arg - der zu prüfende String
      Returns:
      Prüfergebnis
    • isDateInFutureDDMMYYYY

      public static boolean isDateInFutureDDMMYYYY(String arg)
      Prüft, ob das Argument in der Zukunft bzgl. des Maschinendatums liegt.
      Parameters:
      arg - der zu prüfende String
      Returns:
      Prüfergebnis
    • isDateMoreThan150YearsOld

      @Deprecated public static boolean isDateMoreThan150YearsOld(String arg)
      Deprecated.
      Prüft, ob das Argument mehr als 150 Jahre in der Vergangenheit liegt.
      Parameters:
      arg - der zu prüfende String
      Returns:
      Prüfergebnis
    • isDateMoreThan150YearsOldX

      @Deprecated public static boolean isDateMoreThan150YearsOldX(String arg)
      Deprecated.
      Prüft, ob das Argument (XML-Format) mehr als 150 Jahre in der Vergangenheit liegt.
      Parameters:
      arg - der zu prüfende String
      Returns:
      Prüfergebnis
    • isDate60MonateAbweichend

      @Deprecated public static boolean isDate60MonateAbweichend(String arg)
      Deprecated.
      Prüft, ob das Argument mehr als 60 Monate bzgl. des Maschinendatums abweicht.
      Parameters:
      arg - der zu prüfende String
      Returns:
      Prüfergebnis
    • isDatekleiner3MonatplusED

      @Deprecated public static boolean isDatekleiner3MonatplusED(String arg, String arg1)
      Deprecated.
      Prüft, ob das Argument ein Datum YYYYMMDD darstellt kleiner als arg1 plus 3 Monate.
      Parameters:
      arg - der zu prüfende String
      arg1 - der zu prüfende String
      Returns:
      Prüfergebnis
    • isDatekleiner3MonatplusEDX

      @Deprecated public static boolean isDatekleiner3MonatplusEDX(String arg, String arg1)
      Deprecated.
      Prüft, ob das Argument ein Datum YYYY_MM_DD (XML) darstellt kleiner als arg1 plus 3 Monate.
      Parameters:
      arg - der zu prüfende String
      arg1 - der zu prüfende String
      Returns:
      Prüfergebnis
    • isTimeInFuture

      public static boolean isTimeInFuture(String arg)
      Prüft, ob das Argument in der Zukunft bzgl. des Maschinendatums liegt. Dass Datum selbst wird nicht geprüft.
      Parameters:
      arg - der zu prüfende String
      Returns:
      Prüfergebnis
    • isValidDateOrZeroes

      public static boolean isValidDateOrZeroes(String arg)
      Prüft, ob das Argument ein gültiges Datum YYYYMMDD darstellt oder auf Grundstellung (00000000) steht. das Feld wird vor der Prüfung nicht getrimmt. Die Länge wird ebenfalls überprüft.
      Parameters:
      arg - der zu prüfende String
      Returns:
      Prüfergebnis
    • isValidTime

      public static boolean isValidTime(String arg)
      Prüft, ob das Argument eine gültige Zeit hhmmss darstellt.
      Parameters:
      arg - der zu prüfende String
      Returns:
      Prüfergebnis
    • isValidBBNR

      public static boolean isValidBBNR(String arg)
      Prüfziffernberechnung für Betriebsnummern nach Kap. 1.3.2.2. Rundschreiben DEUEV. Algorithmus:

      - Die Ziffern der Betriebsnummer (Stellen 1 bis 7) werden - an der ersten Stelle beginnend - mit den Faktoren 1, 2, 1, 2, 1, 2, 1 multipliziert. - Von den einzelnen Produkten werden die Quersummen gebildet.
      - Die Quersummen werden addiert.
      - Die Summe wird durch 10 dividiert.
      - Der verbleibende Rest ist die erste erlaubte Prüfziffer
      - Die zweite erlaubte Prüfziffer ist sie Summe aus erster Prüfziffer und 5

      Parameters:
      arg - komplette BBNR als 8-stelliger String
      Returns:
      Prüfergebniss
    • isValidGesAbsnr

      public static boolean isValidGesAbsnr(String arg)
      Prüfziffernberechnung für gesonderte Absendernummer nach &18n, Abs. 2 SGB IV. Algorithmus:

      - Die erste Stelle der gesonderten Absendernummer ist ein A - die folgenden 7 Stellen der gesonderten Absendernummer sind numerisch

      Parameters:
      arg - komplette Absendernummer als 8-stelliger String
      Returns:
      Prüfergebniss
    • isValidKVNR

      public static boolean isValidKVNR(String arg)
      Prüfziffernberechnung für KV-Nummern nach Anhang A3 der Spezifikation der gematik. Algorithmus:

      - Der Buchstabe wird durch eine zweistellige Zahl ersetzt, welche die Position des Buchstabens im Alphabet (01 bis 26) kennzeichnet.
      - Die Ziffern der damit zehnstelligen Nummer werden - an der ersten Stelle beginnend - mit den Faktoren 1, 2, 1, 2, 1, 2, 1, 2, 1, 2 multipliziert - Die Ergebisse werden addiert.
      - Die Summe wird von nächsten vollen Zehner abgezogen.
      - Der verbleibende Rest ist die Prüfziffer.

      Parameters:
      arg - komplette KVNR als 10-stelliger String
      Returns:
      Prüfergebniss
    • isValidRVNR1

      public static boolean isValidRVNR1(String arg)
      Prüft die Struktur einer VSNR nach Kap. 3.1.1 Rundschreiben DEUEV. Algorithmus:

      Stellen 1-8: numerisch
      Stelle 9: Grossbuchstabe
      Stelle 10-12: numerisch

      Parameters:
      arg - komplette VSNR als 12-stelliger String
      Returns:
      Prüfergebniss
    • isValidRVNR2

      public static boolean isValidRVNR2(String arg)
      Prüft die Gültigkeit des Geburtsdatums innerhalb einer VSNR nach Kap. 3.1.1.2 Rundschreiben DEUEV.
      Parameters:
      arg - komplette VSNR als 12-stelliger String
      Returns:
      Prüfergebniss
    • isValidRVNR3

      public static boolean isValidRVNR3(String arg)
      Prüfziffernberechnung für RV-Nummern nach Kap. 3.1.1.3 Rundschreiben DEUEV. Algorithmus:

      - Der Buchstabe wird durch eine zweistellige Zahl ersetzt, welche die Position des Buchstabens im Alphabet (01 bis 26) kennzeichnet.
      - Die Ziffern der damit zwölfstelligen Nummer werden - an der ersten Stelle beginnend - mit den Faktoren 2, 1, 2, 5, 7, 1, 2, 1, 2, 1, 2 und 1 multipliziert.
      - Von den Produkten werden die Quersummen gebildet.
      - Die Quersummen werden addiert.
      - Die Summe wird durch 10 dividiert.
      - Der verbleibende Rest ist die Prüfziffer.

      Parameters:
      arg - komplette VSNR als 12-stelliger String
      Returns:
      Prüfergebniss
    • isValidRVNR99

      public static boolean isValidRVNR99(String arg)
      Prüft die Struktur einer VSNR bei Bereichsnummer (Stellen 1-2) gleich "99". Algorithmus:

      Stellen 3-8: numerisch
      Stelle 9: nur Wert "1" oder "2"
      Stelle 10-12: Grundstellung (Leerzeichen)

      Parameters:
      arg - komplette VSNR als 12-stelliger String
      Returns:
      Prüfergebniss
    • maybeITRVNR

      public static boolean maybeITRVNR(String arg)
      Prüft, ob das Argument eine Interims-RV-Nummer sein künnte, d.h. ob die ersten beiden Ziffern in ITVSNR vorkommen.
      Parameters:
      arg - Beginn der VSNR, mindestens 2-stelliger String
      Returns:
      Prüfergebniss
    • isValidAZVU

      public static boolean isValidAZVU(String arg)
      Prüfziffernberechnung für DUEBAK-AZVU. Algorithmus:

      - Bei Meldungen von der Bundesagentur für Arbeit (VFMM im VOSZ = BATKV oder WDTKV).
      - Stellen 093 - 097 und 102 - 107 müssen numerisch sein.
      - Stellen 093 - 097 und 102 - 107 dürfen nicht ausschließlich Nullen enthalten.
      - Stellen 098 - 100 müssen numerisch sein.
      - Stellen 098 - 100 dürfen Nullen enthalten.
      - Stelle 101 muss ein Großbuchstabe enthalten.

      Parameters:
      arg - kompletter AZVU String
      Returns:
      Prüfergebniss
    • isPLZInland

      public static boolean isPLZInland(String arg)
      Prüft inländische PLZ. Das Format muss 5-stellig numerisch im Bereich 01000-99999 sein.
      Parameters:
      arg - zu prüfender String
      Returns:
      Prüfergebniss
    • isPLZAusland

      public static boolean isPLZAusland(String ldkz, String arg)
      Prüft ausländische PLZ. Das Format muss Anlage 18 DEUEV entsprechen:

      - LDKZ A, B, CH, DK und L: NNNN
      - LDKZ F: NNNNN
      - LDKZ NL: NNNN AA
      - LDKZ PL: NN-NNN
      - LDKZ CZ: NNN NN
      - LDKZ CDN: ANA NAN
      N steht für eine Ziffer, A für einen Großbuchstaben. Bei allen anderen LDKZ wird true zurückgeliefert.

      Parameters:
      ldkz - LDKZ lt. Anlage 8 DEUEV
      arg - zu prüfender String
      Returns:
      Prüfergebniss